package com.example.demo.game;

//房间管理器  有唯一实例

import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;

@Component
public class RoomManager {
    private ConcurrentHashMap<String,Room> rooms = new ConcurrentHashMap<>();
    private ConcurrentHashMap<Integer,String> userIdToRoomId = new ConcurrentHashMap<>();

    public void add(Room room, int userId1,int userId2) {
        rooms.put( room.getRoomId(),room);
        userIdToRoomId.put(userId1,room.getRoomId());
        userIdToRoomId.put(userId2,room.getRoomId());

    }
    public void remove(String roomId,int userId1,int userId2) {
        userIdToRoomId.remove(userId1);
        userIdToRoomId.remove(userId2);
        rooms.remove(roomId);
    }
    public Room getRoomByRoomId(String roomId) {

        return rooms.get(roomId);
    }
    public Room getRoomByUserId(int userId) {
        String  roomId = userIdToRoomId.get(userId);
        if(roomId == null) {
            // 房间不存在
            return null;
        }
        return rooms.get(roomId);
    }
}
